package com.byjh.app.service.impl;

import java.util.List;

import com.byjh.common.utils.DateUtils;
import com.byjh.common.utils.SecurityUtils;
import com.byjh.common.utils.uuid.IdUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.byjh.app.mapper.ExamPaperMapper;
import com.byjh.app.domain.ExamPaper;
import com.byjh.app.service.IExamPaperService;

/**
 * 用户试卷Service业务层处理
 * 
 * @author Dhq
 * @date 2025-02-25
 */
@Service
public class ExamPaperServiceImpl implements IExamPaperService 
{
    @Autowired
    private ExamPaperMapper examPaperMapper;

    /**
     * 查询用户试卷
     * 
     * @param id 用户试卷主键
     * @return 用户试卷
     */
    @Override
    public ExamPaper selectExamPaperById(Long id)
    {
        return examPaperMapper.selectExamPaperById(id);
    }

    /**
     * 查询用户试卷列表
     * 
     * @param examPaper 用户试卷
     * @return 用户试卷
     */
    @Override
    public List<ExamPaper> selectExamPaperList(ExamPaper examPaper)
    {
        return examPaperMapper.selectExamPaperList(examPaper);
    }

    /**
     * 新增用户试卷
     * 
     * @param examPaper 用户试卷
     * @return 结果
     */
    @Override
    public Long insertExamPaper(ExamPaper examPaper)
    {
        Long userId = SecurityUtils.getUserId();
        // 生成试卷编号
        examPaper.setSerialNumber(DateUtils.dateTimeNow() + "-00" + userId);
        examPaper.setUserId(userId);
        int row = examPaperMapper.insertExamPaper(examPaper);
        if (row == 0) {
            throw new RuntimeException("新增试卷失败");
        }
        return examPaper.getId();
    }



    /**
     * 批量删除用户试卷
     * 
     * @param ids 需要删除的用户试卷主键
     * @return 结果
     */
    @Override
    public int deleteExamPaperByIds(Long[] ids)
    {
        return examPaperMapper.deleteExamPaperByIds(ids);
    }

    /**
     * 删除用户试卷信息
     * 
     * @param id 用户试卷主键
     * @return 结果
     */
    @Override
    public int deleteExamPaperById(Long id)
    {
        return examPaperMapper.deleteExamPaperById(id);
    }
}
